package com.hay.oss;


import com.hay.oss.ali.AliOssTemplate;
import com.hay.oss.eos.EosTemplate;
import com.hay.oss.ftp.FtpOssTemplate;
import com.hay.oss.local.LocalOssTemplate;
import com.hay.oss.obs.ObsTemplate;

/**
 * 文件导入
 * @author LiMouRen
 * @date 2024/3/18
 */
public enum OssTypeEnum {

    /**
     * 本地
     */
    LOCAL_OSS(LocalOssTemplate.class),

    /**
     * 阿里OSS
     */
    ALI_OSS(AliOssTemplate.class),

    /**
     * EOS
     */
    EOS(EosTemplate.class),

    /**
     * FTP
     */
    FTP(FtpOssTemplate.class),

    /**
     * OBS
     */
    OBS(ObsTemplate.class),

    ;

    private final Class<? extends OssTemplate> aClass;

    OssTypeEnum(Class<? extends OssTemplate> aClass){
        this.aClass = aClass;
    }

    public String geType(){
        return this.name();
    }

    public Class<? extends OssTemplate> getFileImportClass(){
        return this.aClass;
    }

    public static Class<? extends OssTemplate> getTemplateClass(String type){
        for (OssTypeEnum value : values()) {
            if (value.geType().equals(type)){
                return value.getFileImportClass();
            }
        }
        throw new RuntimeException("暂不支持该oss类型");
    }
}
